package emp.entidades;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.axcessfinancial.domain.*;
import com.sun.org.apache.xml.internal.security.c14n.helper.C14nHelper;

@Entity
@Table(name="pedido")
public class EntPedido extends com.axcessfinancial.domain.BaseEntity implements Serializable{

	private long nroPedido;
	private Date fecha;
	private EntCliente entCliente;
	private int origenPedido;
	private Date fechaAceptado;

	
	private int estado;
	private int idUsuarioAcepta;
	private EntAlmacen entAlmacen;
	private int enviado;
	private int codReferencia;
	private String calificacion;

	private EntMoneda entMoneda;
	private EntTipoCambio entTipoCambio;
	
	private double importe;
	private double descuento;
	private double total;
	private double pesoPedido;
	private double pagoEnvio;
	
	private String observacion;
	
	private EntTipoDocumento entTipoDocumento;
	private EntClienteDireccion entClienteDireccion;
	private EntCourier entCourier;

	
	@Column(name="nroPedido")
	public long getNroPedido() {
		return nroPedido;
	}	
	public void setNroPedido(long nroPedido) {
		this.nroPedido = nroPedido;
	}
	
	@Column(name="fecha")
	public Date getFecha() {
		return fecha;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idCliente")
	public EntCliente getEntCliente() {
		return entCliente;
	}
	public void setEntCliente(EntCliente entCliente) {
		this.entCliente = entCliente;
	}
	
	@Column(name="origenPedido")
	public int getOrigenPedido() {
		return origenPedido;
	}
	public void setOrigenPedido(int origenPedido) {
		this.origenPedido = origenPedido;
	}
	
	
	@Column(name="fechaAceptado")
	public Date getFechaAceptado() {
		return fechaAceptado;
	}
	public void setFechaAceptado(Date fechaAceptado) {
		this.fechaAceptado = fechaAceptado;
	}

	@Column(name="estado")
	public int getEstado() {
		return estado;
	}
	public void setEstado(int estado) {
		this.estado = estado;
	}
	
	@Column(name="idUsuarioAcepta")
	public int getIdUsuarioAcepta() {
		return idUsuarioAcepta;
	}
	public void setIdUsuarioAcepta(int idUsuarioAcepta) {
		this.idUsuarioAcepta = idUsuarioAcepta;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idAlmacen")
	public EntAlmacen getEntAlmacen() {
		return entAlmacen;
	}
	public void setEntAlmacen(EntAlmacen entAlmacen) {
		this.entAlmacen = entAlmacen;
	}
	
	@Column(name="enviado")
	public int getEnviado() {
		return enviado;
	}
	public void setEnviado(int enviado) {
		this.enviado = enviado;
	}
	
	@Column(name="codReferencia")
	public int getCodReferencia() {
		return codReferencia;
	}
	public void setCodReferencia(int codReferencia) {
		this.codReferencia = codReferencia;
	}
	
	@Column(name="calificacion", length=1)
	public String getCalificacion() {
		return calificacion;
	}
	public void setCalificacion(String calificacion) {
		this.calificacion = calificacion;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idMoneda")
	public EntMoneda getEntMoneda() {
		return entMoneda;
	}
	public void setEntMoneda(EntMoneda entMoneda) {
		this.entMoneda = entMoneda;
	}
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idTipoCambio")
	public EntTipoCambio getEntTipoCambio() {
		return entTipoCambio;
	}
	public void setEntTipoCambio(EntTipoCambio entTipoCambio) {
		this.entTipoCambio = entTipoCambio;
	}
	
	@Column(name="importe", length=12, precision=2)
	public double getImporte (){
		return importe;
	}
	public void setImporte(double importe){
		this.importe=importe;
	}
	
	@Column(name="descuento", length=12, precision=2)
	public double getDescuento (){
		return descuento;
	}
	public void setDescuento(double descuento){
		this.descuento=descuento;
	}
	
	@Column(name="total", length=12, precision=2)
	public double getTotal (){
		return total;
	}
	public void setTotal(double total){
		this.total=total;
	}
	
	@Column(name="pesoPedido", length=12, precision=2)
	public double getPesoPedido (){
		return pesoPedido;
	}
	public void setPesoPedido(double pesoPedido){
		this.pesoPedido=pesoPedido;
	}
	
	@Column(name="pagoEnvio", length=12, precision=2)
	public double getPagoEnvio (){
		return pagoEnvio;
	}
	public void setPagoEnvio (double pagoEnvio){
		this.pagoEnvio=pagoEnvio;
	}
	
	@Column(name="observacion", length=120)
	public String getObservacion (){
		return observacion;
	}
	public void setObservacion(String observacion){
		this.observacion=observacion;
	}
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idTipoDocumento")
	public EntTipoDocumento getEntTipoDocumento() {
		return entTipoDocumento;
	}
	public void setEntTipoDocumento(EntTipoDocumento entTipoDocumento) {
		this.entTipoDocumento = entTipoDocumento;
	}
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idClienteDireccion")	
	public EntClienteDireccion getEntClienteDireccion() {
		return entClienteDireccion;
	}
	public void setEntClienteDireccion(EntClienteDireccion entClienteDireccion) {
		this.entClienteDireccion = entClienteDireccion;
	}
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="idCourier")
	public EntCourier getEntCourier() {
		return entCourier;
	}
	public void setEntCourier(EntCourier entCourier) {
		this.entCourier = entCourier;
	}
	
	public EntPedido() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public EntPedido(long nroPedido, Date fecha, EntCliente entCliente,
			int origenPedido, Date fechaAceptado, int estado,
			int idUsuarioAcepta, EntAlmacen entAlmacen, int enviado,
			int codReferencia, String calificacion, EntMoneda entMoneda,
			EntTipoCambio entTipoCambio, double importe, double descuento,
			double total, double pesoPedido, double pagoEnvio,
			String observacion, EntTipoDocumento entTipoDocumento,
			EntClienteDireccion entClienteDireccion, EntCourier entCourier) {
		super();
		this.nroPedido = nroPedido;
		this.fecha = fecha;
		this.entCliente = entCliente;
		this.origenPedido = origenPedido;
		this.fechaAceptado = fechaAceptado;
		this.estado = estado;
		this.idUsuarioAcepta = idUsuarioAcepta;
		this.entAlmacen = entAlmacen;
		this.enviado = enviado;
		this.codReferencia = codReferencia;
		this.calificacion = calificacion;
		this.entMoneda = entMoneda;
		this.entTipoCambio = entTipoCambio;
		this.importe = importe;
		this.descuento = descuento;
		this.total = total;
		this.pesoPedido = pesoPedido;
		this.pagoEnvio = pagoEnvio;
		this.observacion = observacion;
		this.entTipoDocumento = entTipoDocumento;
		this.entClienteDireccion = entClienteDireccion;
		this.entCourier = entCourier;
	}	
	
}
